/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package projetoimc;

/**
 *
 * @author Ditzz
 */
public class MetodoIMCInfantil {

    private double imc;
    private String condicao;

    public MetodoIMCInfantil() {
    }

   /* public MetodoIMCInfantil(double imc, String condicao) {
        this.imc = imc;
        this.condicao = condicao;
    }*/

    public void fazerCalculo(double peso, double altura) throws RuntimeException {

        if (peso <= 0) {
            throw new RuntimeException("Falha: O peso deve ser um número maior que zero");
        }
        if (Double.isNaN(peso)) {
            throw new RuntimeException("Falha: O peso deve ser um número maior que zero");
        }
        if ((altura <= 0) || (altura >= 3)) {
            throw new RuntimeException("Falha: A altura deve ser um número maior que zero e menor que 3m");
        } else {
            this.imc = (peso / Math.pow(altura, 2));
        }

    }

    public void classificar(int idade, Character sexo) throws RuntimeException {
        if ((sexo != 'F') && (sexo != 'M')) {
            throw new RuntimeException("Falha: É necessário informar o sexo (M, F)");
        }
        if ((idade < 6) || (idade > 15)) {
            throw new RuntimeException("Falha: Idade deve ser um numero entre 6 e 15");
        }

        if (sexo == 'M') {

            if (idade == 6) {
                if (this.imc > 18.0) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 16.6) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 14.5) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 7) {
                if (this.imc > 19.1) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 17.3) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 15) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 8) {
                if (this.imc > 20.3) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 16.7) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 15.6) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 9) {
                if (this.imc > 21.4) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 18.8) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 16.1) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 10) {
                if (this.imc > 22.5) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 19.6) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 16.7) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 11) {
                if (this.imc > 23.7) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 20.3) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 17.2) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 12) {
                if (this.imc > 24.8) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 21.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 17.8) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 13) {
                if (this.imc > 25.9) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 21.9) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 18.5) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 14) {
                if (this.imc > 26.9) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 22.7) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 19.2) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 15) {
                if (this.imc > 27.7) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 23.6) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 19.9) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            }
        }

        if (sexo == 'F') {

            if (idade == 6) {
                if (this.imc > 17.4) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 16.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 14.3) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 7) {
                if (this.imc > 18.9) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 17.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 14.9) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 8) {
                if (this.imc > 20.3) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 18.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 15.6) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 9) {
                if (this.imc > 21.7) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 19.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 16.3) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 10) {
                if (this.imc > 23.2) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 20.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 17) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 11) {
                if (this.imc > 24.5) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 21.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 17.6) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 12) {
                if (this.imc > 25.9) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 22.1) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 18.3) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 13) {
                if (this.imc > 27.7) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 23) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 18.9) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 14) {
                if (this.imc > 27.9) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 23.8) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 19.3) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            } else if (idade == 15) {
                if (this.imc > 28.8) {
                    this.condicao = "Obesidade";
                } else if (this.imc > 24.2) {
                    this.condicao = "Sobrepeso";
                } else if (this.imc >= 19.6) {
                    this.condicao = "Normal";
                } else {
                    this.condicao = "Abaixo do peso";
                }
            }
        }

    }

    public double getImc() {
        return imc;
    }

    public String getCondicao() {
        return condicao;
    }

}
